﻿using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Security.Cryptography.X509Certificates;

namespace _029_在序列化时忽略某些字段
{
    class Program
    {
        static void Main(string[] args)
        {
            MemoryStream 数据流 = new MemoryStream();

            BinaryFormatter 创建实例 = new BinaryFormatter();

            汽车表 操作数据 = new 汽车表
            {
                Color = "Whiteh",
                Speed = 165.2M,
                Weight = 2326M
            };

            创建实例.Serialize(数据流, 操作数据);

            //将内存流的当前位置移到流的开始处
            数据流.Position = 0L;

            //进行反序列化，然后输出
            汽车表 输出来 = (汽车表)创建实例.Deserialize(数据流);

            Console.WriteLine($"Color:{输出来.Color}\nSpped:{输出来.Speed}\nWeight:{输出来.Weight}");

            数据流.Dispose();  //释放内存流实例



        }




    }

    //声明一个类，用于稍后的序列化测试
    [Serializable]
    public  class 汽车表
    {
        public string Color;
        public decimal Speed;
        [NonSerialized]
        public decimal Weight;
    }


}
